//
//  WzzDrawImage.m
//  ChatDemo-UI2.0
//
//  Created by 王增战 on 2016/11/23.
//  Copyright © 2016年 王增战. All rights reserved.
//

#import "WzzDrawImage.h"

@implementation WzzDrawImage
//avator_bg.png是系统默认色图片
//原理是在图片上，加了一层上下文（context），在上下文显示（“画”）了要显示的内容。
//然后，再重新定义一个img，从制作好的上下文中获取新的img，并返回。
+ (UIImage *)drawImageWithTitle:(NSString *)string {
    UIImage *bgImage = [UIImage imageNamed:@"HuanXin.bundle/avator_bg"];
    
    CGFloat width = bgImage.size.width;
    CGFloat height = bgImage.size.width;
    
    //创建上下文
    UIGraphicsBeginImageContext(CGSizeMake(width, height));
    [bgImage drawAtPoint:CGPointMake(0, 0)];
    
    //获得一个位图图形上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextDrawPath(context, kCGPathStroke);
    if (!isEmptyString(string)) {
        //draw
        string = [string substringToIndex:1];
        
        BOOL isFirst = [WzzDrawImage isChineseFirst:string];
        if (isFirst) {
            if (SYSTEM_VERSION<9.0) {
                [string drawInRect:CGRectMake(34.90, 23.0, width-5, height-5) withAttributes:@{NSFontAttributeName:BoldSystemFont(74),NSForegroundColorAttributeName:[UIColor whiteColor]}];//尺寸和字体大小是调节好的，尽量不要动。
            } else {
                [string drawInRect:CGRectMake(34.00, 21.40, width-5, height-5) withAttributes:@{NSFontAttributeName:BoldSystemFont(74),NSForegroundColorAttributeName:[UIColor whiteColor]}];//尺寸和字体大小是调节好的，尽量不要动。
            }
            //            [string drawInRect:CGRectMake(27.40+6, 27.40-6, width-5, height-5)
        } else {
            if (SYSTEM_VERSION<9.0) {
                [string drawInRect:CGRectMake(45.5, 24.00, width-5, height-5) withAttributes:@{NSFontAttributeName:BoldSystemFont(74),NSForegroundColorAttributeName:[UIColor whiteColor]}];//尺寸和字体大小是调节好的，尽量不要动。。
            } else {
                [string drawInRect:CGRectMake(45.5, 21.00, width-5, height-5) withAttributes:@{NSFontAttributeName:BoldSystemFont(74),NSForegroundColorAttributeName:[UIColor whiteColor]}];//尺寸和字体大小是调节好的，尽量不要动。。
            }
        }
    }
    //返回绘制成功新的img
    UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return newImg;
}
#pragma mark 正则表达式
+ (BOOL)MatchLetter:(NSString *)str
{
    //判断是否以字母开头
    NSString *ZIMU = @"^[A-Za-z]+$";
    NSPredicate *regextestA = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", ZIMU];
    
    if ([regextestA evaluateWithObject:str] == YES)
        return YES;
    else
        return NO;
}

+ (BOOL)isChineseFirst:(NSString *)firstStr
{
    //是否以中文开头(unicode中文编码范围是0x4e00~0x9fa5)
    int utfCode = 0;
    void *buffer = &utfCode;
    NSRange range = NSMakeRange(0, 1);
    //判断是不是中文开头的,buffer->获取字符的字节数据 maxLength->buffer的最大长度 usedLength->实际写入的长度，不需要的话可以传递NULL encoding->字符编码常数，不同编码方式转换后的字节长是不一样的，这里我用了UTF16 Little-Endian，maxLength为2字节，如果使用Unicode，则需要4字节 options->编码转换的选项，有两个值，分别是NSStringEncodingConversionAllowLossy和NSStringEncodingConversionExternalRepresentation range->获取的字符串中的字符范围,这里设置的第一个字符 remainingRange->建议获取的范围，可以传递NULL
    BOOL b = [firstStr getBytes:buffer maxLength:2 usedLength:NULL encoding:NSUTF16LittleEndianStringEncoding options:NSStringEncodingConversionExternalRepresentation range:range remainingRange:NULL];
    if (b && (utfCode >= 0x4e00 && utfCode <= 0x9fa5))
        return YES;
    else
        return NO;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//将webView上的内通设置成图片
+ (UIImage *)webContentImage:(UIWebView *)web{
    CGSize boundsSize = web.bounds.size;
    CGFloat boundsWidth = web.bounds.size.width;
    CGFloat boundsHeight = web.bounds.size.height;
    CGPoint offset = web.scrollView.contentOffset;
    [web.scrollView setContentOffset:CGPointMake(0, 0)];
    CGFloat contentHeight = web.scrollView.contentSize.height;
    NSMutableArray *images = [NSMutableArray array];
    while (contentHeight > 0) {
        UIGraphicsBeginImageContext(boundsSize);
        [web.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        [images addObject:image];
        CGFloat offsetY = web.scrollView.contentOffset.y;
        [web.scrollView setContentOffset:CGPointMake(0, offsetY + boundsHeight)];
        contentHeight -= boundsHeight;
    }
    [web.scrollView setContentOffset:offset];
    UIGraphicsBeginImageContext(web.scrollView.contentSize);
    [images enumerateObjectsUsingBlock:^(UIImage *image, NSUInteger idx, BOOL *stop) {
        [image drawInRect:CGRectMake(0, boundsHeight * idx, boundsWidth, boundsHeight)];
    }];
    UIImage *fullImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return fullImage;
}



@end
